Virtualization technology enables creating software implementations of physical devices such as hardware platforms, storage devices, and network resources. For example, certain types of virtual machines are software implementations of hardware platforms (e.g., physical computing devices) and can execute computer programs like the hardware platforms they emulate. Such virtual machines can contain an operating system and can run software applications written for the operating system.
A virtual machine can execute on a physical device, called a “host,” which is different from the physical device that the virtual machine emulates. Virtual machine technology also allows for multiple virtual machines to share resources of the same host. Multiple virtual machines are managed on the same host by a software layer, sometimes called a “virtualization platform,” whose function includes controlling how virtual machines share resources of the host.
A benefit of using virtualization technology is that, with few restrictions, any host may be used to implement any virtual machine. A virtual machine may be migrated from a source host to a target host to reduce load on the source host, to allow the source host to be shut down for maintenance or for other reasons that might arise during administration of a computing system. Migrating a virtual machine may comprise making available on the source host data defining the virtual machine, which may be moved or copied from the source host. Though, that data might be obtained at the target host in other ways, such as by importing it from a back up store, which is useful in disaster and error recovery. A virtual machine may be migrated offline, when it is not executing on a host, or online while it is executing on host. Online migration of virtual machines is sometimes referred to as “live” migration.
Conventional approaches to virtual machine migration rely on templates to represent virtual machines. The Open Virtualization Format (OVF) is a standard for virtual machine templates published by the Distributed Management Task Force. Templates conforming to the OVF standard can be used to capture configuration data and other metadata associated with a virtual machine on a source host and help deploy the virtual machine onto a target host.